package com.gomore.opple.module.incomeandexpense;


import com.gomore.opple.BasePresenter;
import com.gomore.opple.BaseView;
import com.gomore.opple.data.remote.bean.WrapperResponseEntity;
import com.gomore.opple.rest.applybill.ApplyHist;
import com.gomore.opple.rest.applybill.RsApplyBillRequest;
import com.gomore.opple.rest.applybill.RsApplyBillResponse;
import com.gomore.opple.rest.applybill.RsCommissionRequest;
import com.gomore.opple.rest.applybill.RsCommissionResponse;
import com.gomore.opple.web.cgform.applybill.entity.TOApplyBillEntity;
import com.gomore.opple.web.cgform.consumer.entity.TOConsumerEntity;

import java.util.List;

import okhttp3.MultipartBody;
import rx.Observable;

public interface IncomeAndExpenseContract {

    interface View extends BaseView<Presenter> {

        /**
         * 显示进度条
         */
        void showProgressDialog();

        /**
         * 隐藏进度条
         */
        void hideProgressDialog();

        /**
         * 展示消息
         *
         * @param msg 消息
         */
        void showMessage(String msg);

        /**
         * 展示消息
         *
         * @param msgId 消息id
         */
        void showMessage(int msgId);

        /**
         * 加载完毕
         */
        void showLoadMoreCompleted();

        /**
         * 刷新完毕
         */
        void showRefreshCompleted();

        /**
         * 展示收支明细
         */
        void showIncomeAndExpense();

        /**
         * 展示提现进度
         */
        void showApply();

    }

    interface Presenter extends BasePresenter {

        /**
         * 准备初始化数据
         */
        void prepareInitData();

        void queryIncomeAndExpense(boolean loadMore, boolean isFirst);

        void queryApply(boolean loadMore, boolean isFirst);

        List<ApplyHist> getIncomeAndExpenseData();

        List<TOApplyBillEntity> getApplyData();
    }
}
